<?php
include_once "filtro_cabecera.php";
include_once "../funciones/funciones_php.php";

$proveedor = $_REQUEST['proveedor'];
$codigo_barra = $_REQUEST['codigo'];
$chofer_retiro = $_REQUEST['chofer_retiro'];

conectar();
/*
$pg = sprintf("UPDATE encomienda
               SET id_proveedor = '%s'
               WHERE id_orden_flete = '%d'",pg_escape_string($proveedor),pg_escape_string($codigo_barra));
$consulta = pg_query($pg) or die ("Error en la consulta");
*/
    $up_detalle = sprintf("UPDATE detalle_encomienda
                           SET estado_despacho = '%s',fecha_despacho=now(),id_proveedor = '%s',id_empleado_entrega = '%d'
                           WHERE codigo_barra = '%s'",pg_escape_string('TRUE'),pg_escape_string($proveedor),pg_escape_string($chofer_retiro),pg_escape_string($codigo_barra));
    $guardar_detalle = pg_query($up_detalle);

    $cons = sprintf("SELECT orden_flete.id_orden_flete
                     FROM orden_flete,detalle_encomienda,encomienda
                     WHERE detalle_encomienda.codigo_barra = '%s'
                     AND detalle_encomienda.id_encomienda = encomienda.id_encomienda
                     AND encomienda.id_orden_flete = orden_flete.id_orden_flete",pg_escape_string($codigo_barra));
    $consul = pg_query($cons) or die ("Error en la consulta");

    $data = pg_fetch_array($consul);

    $orden_flete = $data['id_orden_flete'];

    //Cantidad de encomiendas de la orden

    $pg_cant = sprintf("SELECT *
                        FROM detalle_encomienda,encomienda,orden_flete
                        WHERE orden_flete.id_orden_flete = '%d'
                        AND orden_flete.id_orden_flete = encomienda.id_orden_flete
                        AND encomienda.id_encomienda = detalle_encomienda.id_encomienda
                        AND encomienda.id_tipo_encomienda != '%d'",pg_escape_string($orden_flete),pg_escape_string(4));
    $consul_cant = pg_query($pg_cant) or die ("Error");

    $cantidad_encomiendas = pg_num_rows($consul_cant);

    //Cantidad de encomiendas despachadas

    $pg_cant_desp = sprintf("SELECT *
                        FROM detalle_encomienda,encomienda,orden_flete
                        WHERE orden_flete.id_orden_flete = '%d'
                        AND orden_flete.id_orden_flete = encomienda.id_orden_flete
                        AND encomienda.id_encomienda = detalle_encomienda.id_encomienda
                        AND encomienda.id_tipo_encomienda != '%d'
                        AND detalle_encomienda.estado_despacho = '%s'",pg_escape_string($orden_flete),pg_escape_string(4),pg_escape_string('TRUE'));
    $consul_cant_desp = pg_query($pg_cant_desp) or die ("Error");

    $cantidad_encomiendas_despachadas = pg_num_rows($consul_cant_desp);

    if($cantidad_encomiendas == $cantidad_encomiendas_despachadas)
    {
        $conexion=sprintf("INSERT into orden_flete_estado_orden(id_orden_flete,id_estado_orden,fecha)
                           VALUES ('%s','%s',now())",pg_escape_string($orden_flete),pg_escape_string(4));
        pg_query($conexion) or
        die("Error en la consulta".pg_error());

        $conectar=sprintf("update orden_flete set id_estado_orden = '%s'
                          where id_orden_flete='%d'",pg_escape_string(4),pg_escape_string($orden_flete));
        pg_query($conectar) or
        die("Error en la consulta".pg_error());
    }

pg_close();

    echo "<script>alert('Encomienda despachada correctamente');</script>";
    echo "<script>window.close();window.opener.location.reload();</script>";
?>